export interface UploadApiResult {
    message: string
    code: number
    url: string
}

export enum UploadResultStatus {
    DONE = 'done',
    ERROR = 'error',
    SUCCESS = 'success',
    UPLOADING = 'uploading'
}

export interface FileItem {
    thumbUrl?: string
    name: string
    size: number | string
    type?: string
    percent: number
    file: File
    status?: UploadResultStatus
    response?: UploadApiResult
    uuid: string
}

export interface PreviewFileItem {
    url: string
    name: string
    type: string
}

export interface PromiseFn<T = any, R = T> {
    (...arg: T[]): Promise<R>
}
